import { MENU } from '@/common/constant'
import { type MenuItem } from '@/store/modules/menu/type'
import * as Icon from '@ant-design/icons'
import React from 'react'

// [
//   {
//     label: '数据和文档',
//     type: 'group',
//     children: [
//       {
//         label: '首页',
//         key: '/',
//         icon: 'PieChartOutlined',
//       },
//       {
//         label: '接口文档',
//         key: '/document',
//         icon: 'LinkOutlined',
//         children: [
//           {
//             label: '介绍',
//             key: '/document/introduce',
//             icon: 'BookOutlined',
//           },
//           {
//             label: '登录注册接口',
//             key: '/document/login_register',
//             icon: 'IdcardOutlined',
//           },
//           {
//             label: '用户接口',
//             key: '/document/user',
//             icon: 'SmileOutlined',
//           },
//           {
//             label: '聊天接口',
//             key: '/document/message',
//             icon: 'CommentOutlined',
//           },
//           {
//             label: 'Socket接口',
//             key: '/document/socket',
//             icon: 'CloudOutlined',
//           },
//           {
//             label: '联系人接口',
//             key: '/document/contacts',
//             icon: 'SolutionOutlined',
//           },
//           {
//             label: '动态接口',
//             key: '/document/space',
//             icon: 'GlobalOutlined',
//           },
//           {
//             label: '便签接口',
//             key: '/document/notes',
//             icon: 'ContainerOutlined',
//           },
//           {
//             label: 'AI接口',
//             key: '/document/ai',
//             icon: 'OpenAIOutlined',
//           },
//         ],
//       },
//     ],
//   },
//   {
//     label: '系统管理',
//     type: 'group',
//     children: [
//       {
//         label: '用户管理',
//         key: '/user',
//         icon: 'UserOutlined',
//       },
//       {
//         label: '群管理',
//         key: '/group',
//         icon: 'TeamOutlined',
//       },
//     ],
//   },
//   {
//     label: '用户权限',
//     type: 'group',
//     children: [
//       {
//         label: '权限管理',
//         key: '/auth',
//         icon: 'ClusterOutlined',
//       },
//     ],
//   },
// ]

const useMenuList = (): MenuItem[] => {
  let local = localStorage.getItem(MENU)
  if (local) {
    let menu = JSON.parse(local)
    return menu
  } else {
    return [
      {
        label: '数据和文档',
        type: 'group',
        children: [
          {
            label: '首页',
            key: '/',
            icon: 'PieChartOutlined'
          },
          {
            label: '接口文档',
            key: '/document',
            icon: 'LinkOutlined',
            children: [
              {
                label: '介绍',
                key: '/document/introduce',
                icon: 'BookOutlined'
              },
              {
                label: '登录注册接口',
                key: '/document/login_register',
                icon: 'IdcardOutlined'
              },
              {
                label: '用户接口',
                key: '/document/user',
                icon: 'SmileOutlined'
              },
              {
                label: '聊天接口',
                key: '/document/message',
                icon: 'CommentOutlined'
              },
              {
                label: 'Socket接口',
                key: '/document/socket',
                icon: 'CloudOutlined'
              },
              {
                label: '联系人接口',
                key: '/document/contacts',
                icon: 'SolutionOutlined'
              },
              {
                label: '动态接口',
                key: '/document/space',
                icon: 'GlobalOutlined'
              },
              {
                label: '便签接口',
                key: '/document/notes',
                icon: 'ContainerOutlined'
              },
              {
                label: 'AI接口',
                key: '/document/ai',
                icon: 'OpenAIOutlined'
              }
            ]
          }
        ]
      }
    ]
  }
}

export { useMenuList }

export function convertIconsToComponents(useMenuList: MenuItem[]): MenuItem[] {
  return useMenuList.map((item) => {
    if (item.children && Array.isArray(item.children)) {
      item.children = convertIconsToComponents(item.children)
    }
    if (item.icon && typeof item.icon === 'string') {
      const IconComponent = item.icon
      item.icon = React.createElement(Icon && (Icon as any)[IconComponent])
    }
    return item
  })
}
